原文連結:Understanding the Basics of ABAP
目標
ABAP演進
如Day1講到的,ABAP是個1980就出現的語言,主要在發展上有三個演變關鍵點,通常都跟當時主流語言的發展有關:
- 傳統ABAP:函數導向(FP)+陳述式(statement),當時主流有COBOL, PASCAL。
- ABAP 物件:物件導向(OOP)+陳述式(statement),當時主流有C++, JAVA。
- 現代ABAP:物件導向(OOP)+表達式(Expression),當時主流有C#, JAVA。
ABAP結合了以上特性,現在仍然可以寫傳統ABAP,但雲端環境通常會比較支援新式的寫法,就看專案的需求囉~
ABAP語言版本
ABAP程式通常可以分成三個版本,涵蓋範圍如上圖:
- Standard ABAP:語法涵蓋最完整。
- ABAP for Key Users:因應對不同用戶的安全性考量,部分的功能及元件存在限制,且無法使用Restful API。
- ABAP for Cloud Development:針對雲端環境的版本,對repository objects存在限制。
在本次學習中會用到的語法,基本上三個版本都可以運行,唯獨Restful API 不在ABAP for Key Users的支援範圍內。
ABAP雲端結構
SAP的雲端生態系可以分成以下幾個主要的組成元素:
- ABAP for Cloud Development:前述的ABAP雲端版本,包含了針對雲端優化及核心商業流程的語法。
- ABAP Development Tools(ADT):就是第二天在Eclipse上安裝的ADT開發環境啦。
- ABAP Core Data Services (CDS) :在資料庫內運作,幫助資料建模及分析的工具。
- The ABAP RESTful Application Programming Model:用來提供不同的應用及服務。
- Mandatory public SAP APIs and extension points:比較像SAP系統本身提供的固定API,常見有OData、SOAP及RFC,以及可以在SAP上附加自訂義擴展功能的接口。
總之,在雲架構出現後,官方都非常推崇無論是本來就在雲上的BTP跟S/4HANA Could,或者在本地跟私有雲的S/4HANA,都使用雲環境的架構來開發,以達成SAP 的Clean Core策略 - 用官方提供的規範,在最少修改下滿足自訂的擴展功能。
ABAP語法概述
幾個ABAP的特色:
- 同時混用陳述式與表達式,並以
.
結尾
- ABAP不區分大小寫
- 所有物件(變數)的型別都是靜態的,不會在執行過程改變
- ABAP中可使用SQL語法對資料庫進行存取
註:這節有個影片,有更詳細提及陳述式以及表達式的ABAP語法差異,有興趣的可以自己去SAP learning看。
來寫程式碼註解吧!
最後補充個如何在ABAP寫註解的小小tips:
*星號:僅能放在該行程式的最開頭
"雙引號:可放在任何地方
明天來介紹ABAP的變數與資料型態!